Numerous software applications, utilities, games, operating systems, etc., are designed to have some type of user assistance or "help" facility designed integrally within the software. Such help facilities, to a limited extent, enable the user to obtain instructional information while using the software and are less disruptive, and, typically less time consuming, than searching through manuals or other documentation accompanying the software.
Current help interfaces mimic one of a few basic designs. A first design, the limited context sensitive help interface utilizes the "context" or location of the user in the software to determine the nature and format of the help information to be displayed. For example, in a word processing application, if the user is editing a document and selects a command such as "FILE" from the drop-down menu and further presses a function key such "F1" for HELP, a limited context-sensitive facility opens a window explaining the functions offered under the drop-down menu. Unfortunately, users often have questions of a general nature which are unrelated to their current context or location. In such instances a context-sensitive help interface is of little or no value.
A second design, the table of contents/indexing help interface is formatted similarly to the table of contents or index of a document. Although this design does not limit the user to topics which are specific to the current context of the user's activities, the value of such an interface is dependent on the number and accuracy of entries contained therein. In addition, table of contents/indexing type interfaces are difficult and time consuming to build and rarely include all the topics to which a user is seeking a greater understanding. A further disadvantage of the table of contents/indexing type help interfaces is that users often seek information using words, phrases, and terminology of their own natural language, which although familiar to the user, are often different than those used by the author of the help interface. Both of the above-described help interfaces are not truly user interactive.
Artificial intelligence systems exist which accept natural language queries. However, such systems are usually very large and complex and, therefore, unsuitable for implementation with either an application or an operating system, where size is a primary consideration. Further, such systems have typically been unable to successfully answer a sufficient number of questions to make them useful. In addition, complex artificial intelligence systems are not amenable to "localization," i.e., the porting or translation of the software to adapt to a different natural language from that for which it was developed.
Accordingly, a need exists for a help interface for use with software which allows users to ask questions and make inquiries about topics unrelated to their current context or location within the software. Further, a need exists for a help interface in which the user may query the help facility using words, phrases and terminology of the user's natural language. An additional need exists for a help interface capable of effectively answering natural language queries and which is compact enough to be implemented in an application or operating system. A further need exists for a natural language help interface which may be easily localized to other natural languages without significantly redesigning the interface.
It is therefore an object of the present invention to provide an improved help interface through which users can interact with software.